#include <stdio.h>
# define MaxSize 100
typedef int DataType;
typedef struct
{
DataType list[MaxSize];
int size;
} SeqList;
void ListInitiate(SeqList *L)
{
L ->size = 0; 
}
int ListLength(SeqList L)
{
return L.size;
}
int ListInsert(SeqList *L, int i, DataType X)
{
int j;
if(L->size >= MaxSize)
{
printf("顺序表已满无法插入！\n");
return 0;
}
else if(i < 0 || i > L->size)
{
printf("参数i不合法！\n");
return 0;
}
else
{ 
for(j = L->size; j > i; j--) L->list[j] = L->list[j - 1];
L->list[i] = X;   
L->size ++;  
return 1;
}
}
int ListDelete(SeqList *L, int i, DataType *X)
{
int j;
if(L->size <= 0)
{
printf("顺序表已空无数据元素可删！\n");
return 0;
}
else if(i < 0 || i > L->size - 1)
{
printf("参数i不合法");
return 0;
}
else
{
*X = L->list[i];   
for(j = i + 1; j <= L->size - 1; j++) L->list[j - 1] = L->list[j]; /*一次前移*/   /*改错2*/
L->size--;
return 1;
}
}
int ListGet(SeqList L, int i, DataType *X)
{
if(i < 0 || i > L.size - 1)
{
printf("参数i不合法！\n");
return 0;
}
else
{
*X = L.list[i];
return 1;
}
}
int ListSearch(SeqList L, DataType x)
{
	int i;
	for(i = 0; i < L.size; i++)
	{
	if(L.list[i] == x)
		return i;
	}
	return -1;
}
int main(int argc,char * argv[])
{	SeqList myList;
	int i, X, index;
	ListInitiate(&myList);
	for(i = 0; i < 10; i++)
		ListInsert(&myList, i, i+1);
	ListDelete(&myList, 4, &X);
	for(i = 0; i < ListLength(myList); i++)
	{
		ListGet(myList,i,&X);
		printf("%d",X);
	}
	index = ListSearch(myList , 9);
	printf("\n%d\n" , index);
	index = ListSearch(myList , 11);
	printf("\n%d\n" , index);
	return 0;
}